Cyclic redundancy checks (CRCs) are widely used in communication and data storage and processing environments. CRCs provide a check mechanism on the integrity of data. In particular, CRCs are useful for determining when errors take place in the communication of data (e.g. to and from storage systems, or between devices and/or components).
The computation of CRCs may be expensive in terms of computing resources, and thus it may be desirable to distribute the computation of CRCs across multiple processors. However, it has generally been inefficient to distribute computation of CRCs due to the nature of the calculations.